;*************************************************************************
;*  WarpUP CD-Installer Version 15   11 April 1999                       *
;*                                                                       *
;*  1998 HAAGE & PARTNER Computer GmbH                                  *
;*                                                                       *
;*  If you have any installer questions please let us know!              *
;*                                                                       *
;*  Corrections from Pieter Frenssen                                     *
;*************************************************************************
;
; $VER: WarpUP V15.0 Install Version 3.0 (11.04.99)

(complete 0)

; Die Versionsnummer und das Erstellungs-Datum der hier installierten
; Versionen.

(set #warpup-version "Version 15.0")
(set #warpup-date "(11.04.99)")

; // Die Dateigren

(set #size-komplett 4) ; MByte CD-Installation

;====================================================================
; Initialisierungen

; --- English strings ---

    (set #yeskey "Yes")
    (set #nokey "No")

    (set #wrongos "\n Sorry, you will need OS2.04 or better\n")

    (set #wrongcpu "\n Sorry, you will need min. a 68020 CPU to use StormC\n")

    (set #welcome (cat "\n\n"
        "Welcome to the installation of the powerful\n\n"
        "PowerPC multitasking kernel WarpUP-WarpOS.\n\n"
        ""#warpup-version " of "#warpup-date"\n\n"
        "This script copies the WarpUP-Libraries\n"
        "to your harddisk!\n\n"
        " 98 HAAGE&PARTNER Computer GmbH\n"
        ))
    (set #boardsoptstxt "Please choose your Board")
    (set #noboards "No PPC-Board available")
    (set #cyberstorm "CyberStormPPC A3000/A4000")
    (set #developerboard "CyberStorm Developerboard")
    (set #blizzard "Blizzard PPC A1200")

    (set #boardopts_help (cat "\n"
        "The 'warpHW.library' is the hardware driver for the WarpUp-HAL. In the "
        "directory 'hwdrivers' there are detailed documentation and examples sources "
        "which allow everyone to write WarpUp drivers for new PPC hardware. For "
        "every hardware there exists a library 'warpHW.library'. It is absolutely "
        "necessary that the correct library is installed. This can be tested by "
        "running the tool 'GetDriverInfo' (in the 'tools' directory) which prints "
        "out, which hardware is represented by this driver."
        ))


    (set #envoptstxt "Please choose your settings!")

    (set #envdebug "Debug-Modus")
    (set #envmemprot "PPC memory protection")
    (set #envearlyterm "WShell compatible")
    (set #envnoppc "PPC board not available")
    (set #envhidewarning "Ignore warnings")
    (set #envterminator "PPC.lib autoterminator")

    (set #envopts_help ( cat "\n"
        "Settings\n\n"
        "WarpOS knows some env-variables that can be used to make certain preferences. "
        "The following can be configured using this installer:\n\n"

        "WShell compatible - env:powerpc/earlyterm\n\n"

        "If this variable is not set, then problems can occur in conjunction with "
        "programs like WShell. In this case the variable should be set. Afterwards, "
        "the tools 'stackppc' and 'changemmu' can NOT be used anymore. The PPC stack "
        "can be set using the stack command (the PPC stack gets about double the "
        "size of the 68K stack of the shell).\n\n"
          ))

    (set #stormc_install_powerpclib "Copy libraries to Libs:")
    (set #stormc_install_powerpclib_help "You need this library for using WarpOS")

    (set #versoptstxt "Do you want to install WarpOS V14 or the PowerUp-compatible V7?")
    (set #warpos "WarpOS V14")
    (set #s-lib "compatible version 7")
    (set #boardsopt-help (cat "\n"
        "Very important: As soon as WarpOS has been booted, absolutely NO PPC-programs "
        "that are present in ELF-format will run. If compatibility with ELF-programs is "
        "desired, the powerpc.library version 7 must be installed - after that, "
        "ELF-programs as well as programs using the extended hunk-format will run."
        ))

    (set #gfxopts "Is one of the both gfx cards CVisionPPC or BVisonPPC installed in your amiga?")
    (set #cvppctxt "CyberVisionPPC")
    (set #bvppctxt "BlizzardVisionPPC")
    (set #othergfx "Other gfx card")
    (set #nogfx "No gfx card")

    (set #endsuccess "\n\nInstallation successfull")

(if (= @language "deutsch") (


    (set #yeskey "Ja")
    (set #nokey "Nein")

    (set #wrongos "\n Sorry, dieses Paket bentigt mind. OS2.04.\n")

    (set #wrongcpu "\n Sorry, das StormC-Paket setzt eine 68020 CPU voraus!\n")

    (set #welcome (cat "\n\nWillkommen bei der Installation des \n"
        "leistungsfhigen PowerPC Multitasking-Kernels WarpUP-WarpOS.\n\n"
        ""#warpup-version " vom "#warpup-date"\n\n"
        "Dieses Skript kopiert die verschiedenen\n"
        "Bibliotheken, aus denen sich WarpUP-WarpOS\n"
        "zusammensetzt auf Ihre Festplatte.\n\n"
        " 98 HAAGE&PARTNER Computer GmbH\n"
        ))

    (set #boardsoptstxt "Bitte Boardtyp auswaehlen")
    (set #noboards "Kein PPC-Board vorhanden")
    (set #cyberstorm "CyberStormPPC A3000/A4000")
    (set #developerboard "CyberStorm Developerboard")
    (set #blizzard "Blizzard PPC A1200")

    (set #boardopts_help (cat "\n"
        "Whlen Sie bitte das entsprechende, in Ihrem Amiga eingebaute PowerPC-Board aus. "
        "Wenn Sie noch ueber kein Board verfuegen, whlen Sie einfach \"Kein PPC-Board vorhanden\". "
        "Sie knenn dann dennoch die beigefuegten Demos ablaufen lassen.\n\n"
        "Die 'warpHW.library' ist der Hardware-Treiber fuer den WarpUp-HAL. Im "
        "Verzeichnis 'hwdrivers' befindet sich eine ausfuehrliche Dokumentation und "
        "Beispiel-Sourcen, welche es jedermann erlauben, WarpUp-Treiber fuer neue "
        "PPC-Hardware zu entwickeln. Fuer jede Hardware gibt es eine warpHW.library. "
        "Es muss natuerlich die korrekte Version installiert sein. Dies kann man "
        "ueberpruefen, indem man das Programm 'GetDriverInfo' (im 'tools'-Verzeichnis) "
        "laufen laesst, welches in der Shell ausgibt, welche Hardware der Treiber "
        "repraesentiert."
        ))


    (set #envoptstxt "Bitte whlen Sie Ihre Einstellung!")

    (set #envdebug "Debug-Modus")
    (set #envmemprot "PPC-Speicherschutz")
    (set #envearlyterm "WShell-Kompatibel")
    (set #envnoppc "PPC-Board ausgebaut")
    (set #envhidewarning "Warnungen ignorieren")
    (set #envterminator "PPC.lib Autoterminator")

    (set #envopts_help ( cat "\n"
          "Voreinstellungen\n\n"
          "WarpOS kennt einige Env-Variablen, womit gewisse Voreinstellungen gemacht "
          "werden knnen. Zur Zeit knnen folgende Variablen ber den "
          "Installer konfiguriert werden:\n\n"

          "WShell-Kompatibilitt - env:powerpc/earlyterm\n\n"

          "Wenn diese Variable nicht gesetzt ist, kann es im Zusammenhang mit Programmen "
          "wie der WShell zu grossen Problemen kommen, in diesem Fall sollte diese "
          "Variable gesetzt werden. Dann knnen aber die Tool-Programme 'stackppc' und "
          "'changemmu' nicht mehr bentzt werden. Der PPC-Stack kann dann aber mit dem "
          "Stack-Befehl gesetzt werden (Der PPC-Stack ist etwa doppelt so gross wie der "
          "68K-Stack der Shell).\n\n"

          ))

    (set #stormc_install_powerpclib "Kopiere die Bibliotheken nach Libs:")
    (set #stormc_install_powerpclib_help "Die Bibliothek wird zwangslufig zum Betrieb benoetigt.")

    (set #versoptstxt "Mchten Sie WarpOS V14 oder die PowerUp-kompatible V7 installieren")
    (set #warpos "WarpOS V14")
    (set #s-lib "Kompatible Version 7")
    (set #boardsopt-help (cat "\n"
        "Sehr wichtig: Sobald WarpOS hochgefahren wurde, laufen absolut KEINE "
        "PPC-Programme, die im ELF-Format vorliegen. Wenn unbedingt Kompatibilitt "
        "zu ELF-Programmen erwnscht ist, muss die powerpc.library Version 7 "
        "installiert werden, wonach sowohl ELF-Programme wie auch Programme im "
        "erweiterten Hunkformat laufen. "
        ))

    (set #gfxoptstxt "Haben Sie eine der beiden Grafikkarten CVisonPPC oder BVisonPPC in Ihrem Amiga installiert?")
    (set #cvppctxt "CyberVisionPPC")
    (set #bvppctxt "BlizzardVisionPPC")
    (set #othergfx "Andere Grafikkarte")
    (set #nogfx "Keine Grafikkarte")

    (set #endsuccess "\n\nInstallation erfolgreich beendet")
))

(if (= @language "italiano") (


    (set #yeskey "Si")
    (set #nokey "No")

    (set #wrongos "\n Spiacente,  necessario OS2.04 or superiore.\n")

    (set #wrongcpu "\n Spiacente,  necessario al minimo una CPU 68020 o superiore per usare WarpOS\n")

    (set #welcome (cat "\n\n"
        "Benvenuto all'installazione del nuovo\n\n"
        "kernel nativo per PowerPC WarpUP-WarpOS.\n\n"
        ""#warpup-version " del "#warpup-date"\n\n"
        "Questo script copia le librerie WarpUP\n"
        "sul tuo harddisk!\n\n"
        " 98 HAAGE&PARTNER Computer GmbH\n"
        ))
    (set #boardsoptstxt "Scegli la tua scheda:")
    (set #noboards "Nessuna scheda PPC")
    (set #cyberstorm "CyberStormPPC A3000/A4000")
    (set #developerboard "CyberStorm Developerboard")
    (set #blizzard "Blizzard PPC A1200")

    (set #boardopts_help (cat "\n"
        "La 'warpHW.library'  il driver hardware per il WarpUp-HAL. Nella "
        "directory 'hwdrivers' c' tutta la documentazione dettagliata e dei "
        "sorgenti di esempio che consentono a chiunque di scrivere dei driver WarpUp "
        "per del nuovo hardware PPC. "
        "Per ogni hardware esistente c' una libreria 'warpHW.library'. E` assolutamente "
        "necessario che sia installata la libreria corretta. Ci pu essere controllato "
        "tramite il comando 'GetDriverInfo' (che si trova nella directory 'tools' ) che "
        "stampa quale hardware  rappresentato da questo driver."
        ))

    (set #envoptstxt "Scegli le tue impostazioni!")

    (set #envdebug "Livello di Debug")
    (set #envmemprot "Protezione di memoria sotto PPC.")
    (set #envearlyterm "Compatibilit con WShell")
    (set #envnoppc "Scheda PPC non disponibile")
    (set #envhidewarning "Ignorare i 'warnings'")
    (set #envterminator "Autonuclearizzazione PPC.library")

    (set #envopts_help ( cat "\n"
        "Impostazioni:\n\n"
        "WarpOS usa alcune variabili di ambiente (env-variables) che possono essere usate "
        "per cabiare alcune opzioni. "
        "Le opzioni seguenti sono supportate al momento attuale:\n\n"

        "Compatibilit con WShell - env:powerpc/earlyterm\n\n"

        "Se questa variable non  impostata, allora possono esserci dei problemi con "
        "programmi come WShell. In questo caso, la variabile deve venire impostata. "
        "Dopodich, i programmi 'stackppc' e 'changemmu' NON possono essere pi usati. Lo "
        "stack PPC pu essere impostato usando il comando standard 'stack' (lo stack PPC "
        "avr una dimensione doppia dello stack 68K della shell).\n\n"

          ))

    (set #stormc_install_powerpclib "Copia delle librerie in Libs:")
    (set #stormc_install_powerpclib_help "E' necessaria questa libreria per usare WarpOS")

    (set #versoptstxt "Vuoi installare WarpOS V14 o la versione PowerUp compatibile V7?")
    (set #warpos "WarpOS V14")
    (set #s-lib "compatibile V7")
    (set #boardsopt-help (cat "\n"
        "NOTA BENE: Dal momento in cui WarpOS viene lanciato, NESSUN programma PPC "
        "che  presente in formato ELF funzioner pi. Se si desidera la compatibilit "
        "con programmi ELF, deve venire installata la powerpc.library versione 7 - dopo, "
        "ci, funzioneranno sia i programmi ELF che quelli che usano il formato di hunk "
        "esteso (WarpOS). "
        ))

    (set #gfxopts "Is one of the both gfx cards CVisionPPC or BVisonPPC installed in your amiga?")
    (set #cvppctxt "CyberVisionPPC")
    (set #bvppctxt "BlizzardVisionPPC")
    (set #othergfx "Other gfx card")
    (set #nogfx "No gfx card")

    (set #endsuccess "\n\nL'installazione ha avuto successo. Buon divertimento.")
))

(set #os-version (/ (getversion) 65536))
(set #os-13 (< #os-version 36))
(set #os-20 (>= #os-version 36))
(set #os-21 (>= #os-version 38))

; ------------ Die Pfadnamen der einzelnen Quell-Dateien ----------------

(set #ppcv7 (tackon (pathonly @icon) "WarpUP-WarpOS/V7/PowerPC.library"))
(set #dummyelf (tackon (pathonly @icon) "WarpUP-WarpOS/V7/dummy.elf"))
(set #hw1 (tackon (pathonly @icon) "WarpUP-WarpOS/hwdrivers/CyberStormPPC/warpHW.library"))
(set #hw2 (tackon (pathonly @icon) "WarpUP-WarpOS/hwdrivers/P5Developerboard/warpHW.library"))
(set #hw3 (tackon (pathonly @icon) "WarpUP-WarpOS/hwdrivers/BlizzardPPC/warpHW.library"))
(set #ppcv14 (tackon (pathonly @icon) "WarpUP-WarpOS/libs/PowerPC.library"))
(set #warpV14 (tackon (pathonly @icon) "WarpUP-WarpOS/libs/Warp.library"))
;=====================================================================================
; // Beginn der Installation
;=====================================================================================

; // wird min. unter 2.04 installiert ?

(if (= #os-13 1)

    (
        (message #wrongos)

        (exit (quiet))
    )
)

(if (patmatch "68000|68010" (database "cpu"))
    (
        (message #wrongcpu)
        (exit (quiet))
    )
)

(onerror (
    (if (> @ioerr 0)
        (message (cat "\n ERROR CODE: " @ioerr "\n\n"))
    )
))

; // Eine kleine Einleitung, gefolgt vom Startbild des Installers.


(message #welcome)

;(welcome)

(complete 2)

; // Alte Version prfen und entsprechende Abfrage ausgeben!--------------------------------------------

(set #folder "SYS:")

; Libs auf die Platte kopieren

(complete 10)

(set #noppc (getenv "PowerPC/noppc"))

(set #boardopts
    (askchoice
        (prompt #boardoptstxt)
        (help #boardopts_help)
        (choices #noboards #cyberstorm #developerboard #blizzard)
        (default 1)
    )
)

(if (= #boardopts 0)
    ((set #noppc 1))
)

(set destenvarc (tackon "envarc:" "PowerPC"))
(set destenv (tackon "env:" "PowerPC"))
(if                                         ; // Verzeichnis fr Envargumente erzeugen
   (= (exists destenvarc) 0)
    (
      (makedir destenvarc (infos))
      (makedir destenv (infos))

      (set #alertfile "CON:0/20/400/200/WarpOS - System Message/AUTO/CLOSE/WAIT/INACTIVE")

      (run "setenv PowerPC/alertfile" #alertfile)
      (run "copy ENV:PowerPC/alertfile ENVARC:PowerPC")

      (set #crashfile "CON:0/20/400/300/WarpOS - PowerPC Exception/AUTO/CLOSE/WAIT/INACTIVE")

      (run "setenv PowerPC/crashfile" #crashfile)
      (run "copy ENV:PowerPC/crashfile ENVARC:PowerPC")

      (set #debug 0)
      (set #memprot 0)
      (set #earlyterm 0)
      (set #hidewarning 0)
      (set #terminator 2)
      (set #seginfo 100)
    )
    (
      (set #debug 0)
      (set #memprot 0)
      (set #earlyterm (getenv "PowerPC/earlyterm"))
      (set #hidewarning 0)
      (set #terminator 2)
      (set #seginfo 100)
    )
)

(set #envopts 0)

(if (= #earlyterm 1)
   (
   (set #envopts (bitor #envopts 1))
   )
)

;==================================================================================
(complete 40)

(set #envopts
    (askoptions
        (prompt #envoptstxt)
        (help #envopts_help)
        (choices #envearlyterm)
        (default #envopts)
    )
)

(complete 50)

(if (= 4 (bitand #envopts 1))
    (
    (set #earlyterm 1)
    )
    (
    (set #earlyterm 0)
    )
)

(run "setenv PowerPC/debug" #debug)
(run "copy ENV:PowerPC/debug ENVARC:PowerPC")

(run "setenv PowerPC/memprot" #memprot)
(run "copy ENV:PowerPC/memprot ENVARC:PowerPC")

(run "setenv PowerPC/earlyterm" #earlyterm)
(run "copy ENV:PowerPC/earlyterm ENVARC:PowerPC")

(run "setenv PowerPC/noppc" #noppc)
(run "copy ENV:PowerPC/noppc ENVARC:PowerPC")

(run "setenv PowerPC/hidewarning" #hidewarning)
(run "copy ENV:PowerPC/hidewarning ENVARC:PowerPC")

(run "setenv PowerPC/terminator" #terminator)
(run "copy ENV:PowerPC/terminator ENVARC:PowerPC")

(run "setenv PowerPC/seginfo" #seginfo)
(run "copy ENV:PowerPC/seginfo ENVARC:PowerPC")

(complete 70)

(set #gfxopts
    (askchoice
        (prompt #gfxoptstxt)
        (help #boardopts_help)
        (choices #cvppctxt #bvppctxt #othergfx #nogfx)
        (default 2)
    )
)

(set #gfxaddr 0)
(set #force 0)

(if (= #gfxopts 0) ;CVPPC
    (
    (set #gfxaddr "$e0000000")
    (set #force 1)
    )
)

(if (= #gfxopts 1) ;BVPPC
    (
    (set #gfxaddr "$e0000000")
    (set #force 1)
    )
)

(run "setenv PowerPC/gfxaddr" #gfxaddr)
(run "copy ENV:PowerPC/gfxaddr ENVARC:PowerPC")

(run "setenv PowerPC/force" #force)
(run "copy ENV:PowerPC/force ENVARC:PowerPC")

(complete 75)

(set #versopts
    (askchoice
        (prompt #versoptstxt)
        (help #boardopts_help)
        (choices #warpos #s-lib)
        (default 0)
    )
)

(if (= #versopts 1)
    (
       (copylib
           (prompt  #stormc_install_powerpclib)
           (help    #stormc_install_powerpclib_help)
           (source  #ppcv7)
           (dest    "libs:")
           (confirm)
       )

       (complete 80)

       ; Dummy Elf kopieren

       (copyfiles
           (prompt  #stormc_install_powerpclib)
           (help    #stormc_install_powerpclib_help)
           (dest "S:")
           (source #dummyelf)
       )
    )
    (     ; WarpOS installieren

       (if (= #boardopts 1)
           ( (set #hwdriver #hw1)
           ))

       (if (= #boardopts 2)
           ( (set #hwdriver #hw2)
           ))

       (if (= #boardopts 3)
           ( (set #hwdriver #hw3)
           ))

       (copyfiles
           (prompt  #stormc_install_powerpclib)
           (help    #stormc_install_powerpclib_help)
           (source   #hwdriver)
           (dest    "libs:")
;           (confirm)
       )

      (complete 80)

       (copylib
           (prompt  #stormc_install_powerpclib)
           (help    #stormc_install_powerpclib_help)
           (source  #ppcv14)
           (dest    "libs:")
           (confirm)
       )

       (complete 90)

       (copylib
           (prompt  #stormc_install_powerpclib)
           (help    #stormc_install_powerpclib_help)
           (source  #warpV14)
           (dest    "libs:")
           (confirm)
       )

    )
)

(complete 100)

(exit #endsuccess (quiet))
